package com.rppowell.pixie.swing.importer;

import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.filechooser.FileFilter;

public class ImageFileSelectorFilter extends FileFilter {
	@Override
	public boolean accept(File f) {
		if (f.isDirectory()) {
			return true;
		}
		
		String extension = getExtension(f);
		if (extension != null) {
			String[] readers = ImageIO.getReaderFileSuffixes();
			for (int i = 0; i < readers.length; i++) {
				if (extension.equals(readers[i])){
					return true;
				}
			}
		}
		return false;
	}

	@Override
	public String getDescription() {
		String[] readers = ImageIO.getReaderFileSuffixes();
		StringBuffer str = new StringBuffer("Supported Images (");
		for (int i = 0; i < readers.length; i++) {
			str.append(readers[i]);
			if (i != readers.length-1) {
				str.append(", ");
			}
		}
		str.append(")");
		return str.toString();
	}
	
	public static String getExtension(File f) {
		String ext = null;
		String s= f.getName();int i = s.lastIndexOf('.');
		if (i > 0 && i < s.length() - 1) {
			ext = s.substring(i+1).toLowerCase();
		}
		return ext;
	}
}
